# 导入Django内置的admin模块，用于后台管理功能
from django.contrib import admin

# 导入当前目录下的models模块中的Question和Choice模型类
from .models import Question, Choice

"""
创建Choice模型的内联编辑类
StackedInline表示以堆叠布局方式内联显示关联模型
"""
# admin.site.site_header = "我的管理后台"        # 页面左上角主标题
# admin.site.site_title = "我的后台标题"         # 浏览器标签栏标题
# admin.site.index_title = "欢迎使用后台管理"      # 首页欢迎语
#class ChoiceInline(admin.TabularInline)  单行排列
class ChoiceInline(admin.StackedInline):
    model = Choice      # 指定关联的模型为Choice
    extra = 3           # 在编辑页面默认显示3个空白选项框

"""
自定义Question模型的后台管理类
继承admin.ModelAdmin，可定制模型在admin中的显示方式
"""
class QuestionAdmin(admin.ModelAdmin):
    list_display = ["question_text", "pub_date", "was_published_recently"]
    # 定义字段分组布局，用于结构化显示编辑表单
    fieldsets = [
        # 第一个分组，无标题，包含问题文本字段
        (None, {"fields": ["question_text"]}),
        # 第二个分组，标题"Date information"，包含发布日期字段且该区域可折叠
        ("Date information", {
            "fields": ["pub_date"],
            "classes": ["collapse"]  # 添加CSS类，实现折叠效果
        }),
    ]
    inlines = [ChoiceInline]  # 在Question编辑页面内联显示Choice编辑
    list_filter = ["pub_date"]  # 添加了一个“过滤器”侧边栏，允许人们以 pub_date 字段来过滤列表

# 注册Question模型到admin，并应用自定义的QuestionAdmin配置
admin.site.register(Question, QuestionAdmin)

# 注册Choice模型到admin，使用默认的ModelAdmin配置
admin.site.register(Choice)


